#include "comm.hpp"
#include "log.hpp"

using namespace std;

int main()
{
    Init_Pipe init;
    Log lg;
    lg.enable(CLASSFILE);
    // 打开管道
    // 等待写入方打开之后，自己才会打开文件，向后执行， open 阻塞了！
    int fd = open(FIFO_FILE, O_RDONLY); 
    if (fd < 0)
    {
        lg(Fatal, "error string: %s, error code: %d", strerror(errno), errno);
        exit(FIFO_OPEN_ERR);
    }

    //for test Log
    lg(Info, "error string: %s, error code: %d", strerror(errno), errno);
    lg(Warning, "error string: %s, error code: %d", strerror(errno), errno);
    lg(Error, "error string: %s, error code: %d", strerror(errno), errno);
    lg(Fatal, "error string: %s, error code: %d", strerror(errno), errno);
    lg(Debug, "error string: %s, error code: %d", strerror(errno), errno);
   


    // 开始通信
    while (true)
    {
        char buffer[1024] = {0};
        int x = read(fd, buffer, sizeof(buffer));
        if (x > 0)
        {
            buffer[x] = 0;
            cout << "client say# " << buffer << endl;
        }
        else if (x == 0) //读取到零表示客户端退出
        {
            lg(Debug, "client quit, I quit! error string: %s, error code: %d", strerror(errno), errno);
            break;
        }
        else // error 暂时不做处理
            break;
    }

    //关闭管道
    close(fd);



    return 0;
}